package com.jmlee.service;

import com.jmlee.pojo.Menu;
import org.apache.ibatis.session.RowBounds;

import java.util.List;
import java.util.Map;

/**
 * 菜单Service
 */
public interface MenuService {
    /**
     * 获得在前端渲染的菜单信息
     * @param rId
     * @return
     */
    Map<String,Object> getMenuInfo(Long rId);

    /**
     * 权限管理树形图渲染菜单信息
     * @param rId
     * @return
     */
    List<Object> getMenuInfoByRid(Long rId);

    /**
     * 获得父菜单信息列表
     * @return
     */
    List<Menu> getAllParentMenuList();

    /**
     * 获取拥有权限的菜单id
     * @return
     */
    List<String> getEnableListId(Long rId,Long parentId);

    /**
     * 获取未拥有权限的菜单id
     * @return
     */
    List<String> getUnableListId(Long rId,Long parentId);

    /**
     * 获取所有子菜单
     *
     * @return
     */
    List<Menu> getAllChildMenu();
    /**
     * 新增菜单
     * @param menu
     * @return
     */
    Integer addMenu(Menu menu);

    /**
     * 编辑菜单
     * @param menu
     * @return
     */
    Integer editMenu(Menu menu);

    /**
     * 所有菜单Id
     * @return
     */
    List<Long> allMenuId();
//    public Integer deleteMenu(Long id);

    /**
     * 获取未被逻辑删除的菜单列表
     * @param rowBounds
     * @return
     */
    List<Menu> allMenuList(RowBounds rowBounds, Menu menu);

    /**
     * 获取未被逻辑删除的菜单总数
     * @return
     */
    Long menuCount(Menu menu);
}
